WriteFileEx
Otázka od: Ján Harman
20. 11. 2002 22:38
Pouzivate nekdo prosim funkci WriteFileEx v asynchronnim rezimu? Poskytnete
priklad?
Diky. Honza.
Odpovedá: Dalibor Toman
21. 11. 2002 0:17
> pouzivam WriteFileEx a nejak mi nechce volat FileIOCompletionRoutine, kdy
se
> to prosim vola?
> Potrebuji to pouzivat i pri ReadFileEx, ale nevim jak to inicializovat.
> Myslim ze adresu funkce predavam spravne. Dik. Honza.
volajici thread musi byt v 'alertable state' tedy napriklad v funkci
WaitForXXX
ne prilis kompletni priklad pouziti:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base
/reading_writing_and_locking_a_file.asp
V rade pripadu je mnohem jednodusi nastartovat nejaky thread a v nem
zapis/cteni provest asynchrnonne vuci hlavnimu procesu.
IO Completion routines se pouzivaji jen v krajnich pripadech kdy jde
skutecne o maximalni vykon (a maximalni neprehlednost kodu ) a to hlavne
v klient/server aplikacich kde se pripojuji velka mnozstvi klientu najednou.
D. Toman
Odpovedá: Ján Harman
21. 11. 2002 8:28
Ano volam WaitForSingleObject hned po vykonani ReadFile, potom je odezva v
CompletionRoutine, ale prijme to nejprve 1 potom zase jeden a potom zbytek.
Takze CompletionRoutine je volana 3x. Myslis abych ji tam nedaval vubec?
Nebo pouzil synchronni cteni? Diky. Honza.
> > pouzivam WriteFileEx a nejak mi nechce volat FileIOCompletionRoutine,
kdy
> se
> > to prosim vola?
> > Potrebuji to pouzivat i pri ReadFileEx, ale nevim jak to inicializovat.
> > Myslim ze adresu funkce predavam spravne. Dik. Honza.
>
> volajici thread musi byt v 'alertable state' tedy napriklad v funkci
> WaitForXXX
>
> ne prilis kompletni priklad pouziti:
>
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base
> /reading_writing_and_locking_a_file.asp
>
>
> V rade pripadu je mnohem jednodusi nastartovat nejaky thread a v nem
> zapis/cteni provest asynchrnonne vuci hlavnimu procesu.
>
> IO Completion routines se pouzivaji jen v krajnich pripadech kdy jde
> skutecne o maximalni vykon (a maximalni neprehlednost kodu ) a to
hlavne
> v klient/server aplikacich kde se pripojuji velka mnozstvi klientu
najednou.
>
> D. Toman
>
>
>
Odpovedá: Dalibor Toman
21. 11. 2002 9:47
> Ano volam WaitForSingleObject hned po vykonani ReadFile, potom je
odezva v
> CompletionRoutine, ale prijme to nejprve 1 potom zase jeden a potom
zbytek.
> Takze CompletionRoutine je volana 3x. Myslis abych ji tam nedaval
vubec?
> Nebo pouzil synchronni cteni? Diky. Honza.
>
pokud to napises v separatnim threadu muzes pouzit obycejne synchronni
funkce.
D. Toman